Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

393
Views
¿Por qué no funciona message.channel.awaitMessages()? | Discordia.js V13

Estoy tratando de recopilar un mensaje después de un determinado mensaje que un usuario ha enviado en un canal específico. Entonces, el usuario enviaría hello world y luego los mensajes de espera esperarían una respuesta de un usuario específico y tomarían la identificación de ese mensaje. Sin embargo, no funciona.

Aquí está mi código:

 let filter = message => { return message.author.id == 'ID OF USER'; } if(message.channel.id == 'channel id of sent message') { console.log('here'); if(message.content.valueOf("hello world")) { console.log('here'); message.channel.awaitMessages(bumpFilter, { max: 1, time: 5000, errors: ['time']}) .then(c => { console.log('here'); console.log(c); }); } }

En la consola, here se registra 2 veces. Sin embargo, la tercera vez no se registra, incluso después de que hayan pasado 5 segundos desde este mensaje. La consola no registra nada, ni siquiera un error, lo que me hizo especular que tal vez sea un problema de intentos de discordia, pero tampoco creo que haya sido eso. Así que no entiendo cuál es el problema y por qué no obtengo ningún resultado. Además, si message.channel.awaitMessages(...) a una var y luego registré la var , generaría Promise { <pending> } y leí que se debe agregar una declaración .then para evitar eso. Y ahora que se agrega, todavía no genera nada.

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Primero, if (message.content.valueOf("hello world")) siempre devolverá verdadero ya que el método valueOf devuelve el valor primitivo del objeto especificado. Incluso si message.content no es "hello world" , sigue siendo veraz. Debe verificar si el valor de message.content en sí mismo es igual a "hello world" .

En segundo lugar, declara una variable de filter pero usa bumpFilter en sus awaitMessages

Y tercero, en discord.js v13, awaitMessages acepta un solo parámetro, un objeto de opciones . (En v12 el primer parámetro era un filtro y el segundo son las opciones).

 let filter = (message) => { return message.author.id === 'ID OF USER'; }; if (message.channel.id === 'channel id of sent message') { console.log('channel matches'); if (message.content === 'hello world') { console.log('message is hello world'); message.channel .awaitMessages({ filter, max: 1, time: 5000, errors: ['time'] }) .then((c) => { console.log('New message collected'); console.log(c); }) .catch((c) => console.log(`After five seconds, ${c.size} messages are collected.`), ); } }
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!